/*
 * @Author: Drunk 1191047790@qq.com
 * @Date: 2024-10-24 11:06:03
 * @LastEditors: Drunk 1191047790@qq.com
 * @LastEditTime: 2024-10-25 17:53:22
 * @FilePath: \WWW\shopping\vite.config.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

//引入nodejs路径模块
import path from 'path'

// 加载自动生成路由插件
import Pages from 'vite-plugin-pages'

// 加载模板布局插件
import Layouts from 'vite-plugin-vue-layouts'

// 加载自动导入的插件
import AutoImport from 'unplugin-auto-import/vite'

// 加载自定义组件的插件
import Components from 'unplugin-vue-components/vite'


// https://vite.dev/config/
export default defineConfig({
    server: {
        // 反向代理
        proxy:{
            //设置反向代理的规则
            '/shopping': {
                //目标地址
                target: 'http://www.fast.com/shopping', //将localhost:5173 转向到target
                changeOrigin:true,//跨域 axios -> vite(changeOrigin) -> nodejs
                //替换掉shop前缀 防止多个shop地址
                rewrite: (path) => path.replace(/^\/shopping/, '')
            }
        }
    },

    resolve:{
        alias: {
            "@":path.resolve(__dirname,"src"),
            "vue":'vue/dist/vue.esm-bundler.js'
        },
    },

    plugins: [
        vue(),
        AutoImport({
            imports: ['vue', 'vue-router','pinia'],
            dts: 'src/auto-import.d.ts' //加载全局钩子的文件
          }),
          Components({
            // 指定组件位置，默认是src/components
            dirs: ['src/components'],
            // ui库解析器
            // resolvers: [ElementPlusResolver()],
            extensions: ['vue'],
            // 配置文件生成位置
            dts: 'src/components.d.ts'
          }),
          Pages({
            dirs: 'src/views',  // 需要生成路由的组件目录
            exclude: ['**/components/*.vue']  // 排除在外的目录，即所有 components 目录下的 .vue 文件都不会生成路由
          }),
          Layouts({
            layoutsDirs: 'src/layout',  // 布局模板文件存放目录
            defaultLayout: 'index'  // 默认布局，对应 src/layout/index.vue
          }),
    ],
})
